package com.example.exception;


import com.example.util.Result;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/*
 * 全局异常处理器  用于捕获全局没有处理的异常
 * */
//让注解@ExceptionHandler生效
//@ControllerAdvice
//@ResponseBody
//上面两个注解组合
@RestControllerAdvice
public class MyExceptionHandler {

    //    指定这个方法处理的异常类型
    @ExceptionHandler(Exception.class)
    public Result handlerException(Exception e) {
        System.out.println("捕获到Exception");
        e.printStackTrace();
        return Result.error(e.getMessage());
    }


    //    一般为拦截器中未认证通过抛出的异常 会被异常处理器捕获
    @ExceptionHandler(MyException.class)
    public Result handlerMyException(MyException e) {
        System.out.println("捕获到自定义异常");
        e.printStackTrace();
        return Result.error(e.getMessage(),401);
    }

}
